package org.dromara.comm_lhz.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseService;
import org.dromara.comm_lhz.entity.AsCommodityEntity;
import org.dromara.comm_lhz.entity.dto.AsCommodityInfoDto;
import org.dromara.comm_lhz.entity.vo.AsCommodityListVo;
import org.springframework.data.domain.Pageable;

/**
 * 商品服务接口
 * 继承了MPJBaseService以实现基本的CRUD操作
 */
public interface AsCommodityHService extends MPJBaseService<AsCommodityEntity> {

    /**
     * 分页查询商品列表
     *
     * @param pageable 分页信息
     * @return 商品列表的分页数据
     */
    Page<AsCommodityListVo> selCommodityList(Pageable pageable,Integer state);

    /**
     * 添加商品信息
     *
     * @param asCommodityInfoDto 商品信息DTO，包含商品的详细信息
     */
    void addCommodity(AsCommodityInfoDto asCommodityInfoDto);

    /**
     * 更新商品信息
     *
     * @param asCommodityInfoDto 商品信息DTO，包含商品的详细信息
     */
    void updateCommodity(AsCommodityInfoDto asCommodityInfoDto);

    /**
     * 根据ID获取商品信息
     *
     * @param id 商品ID
     * @return 商品信息对象
     */
    Object getCommodityById(Long id);

    /**
     * 根据商品实体和分页信息查询商品
     *
     * @param asCommodityEntity 商品实体对象，用于查询条件
     * @param pageable 分页信息
     * @return 商品查询结果对象
     */
    Object selCommodity(AsCommodityEntity asCommodityEntity, Pageable pageable);
}
